1. Copyright Authorization
A portion of the disclosure this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
2. Field of the Invention
The invention relates generally to network processors, and more particularly to adaptable digital network processors that are capable of providing real time processing of high bandwidth networks carrying a variety of different and/or frequently changing digital network protocols, protocol encapsulations and/or multiplexing formats.
3. Description of the Related Art
Telecommunications traffic is increasing in terms of both quantity and transmission speed. At the same time, new and quickly evolving digital protocol standards, which may be encapsulated within one another, are yielding a wide variety of potential digital protocols which often must be processed at real-time rates.
"Processing" shall include, but is not limited to routing, multiplexing, demultiplexing, encapsulating and de-encapsulating, for example. It may also include other types of processing of digital information that may be needed in telecommunications systems. Routing shall refer to switching and moving information over a network using network protocols. Network shall refer to a system of devices, links and subsystems, for example, which provide a platform for communications. Protocol shall refer to rules or guidelines by which information is exchanged or understood between two devices. Multiplexing shall refer to the process of combining multiple individual channels of data into a single aggregate channel of data for sharing equipment and bandwidth. A channel shall refer to a stream of data. A multiplexing format may be thought of as a type of digital protocol. Demultiplexing, the reverse process of multiplexing, shall refer to the process of separating a single aggregate channel into multiple individual channels. Encapsulating shall refer to the function of putting data or information into a format required by a particular digital protocol or putting already encapsulated information into another digital protocol (nested encapsulation). Encapsulating may generally involve adding headers, trailers and error correction information to data, for example. De-encapsulating, the reverse process of encapsulating, shall refer to the process of removing information from an encapsulated format. Please see Naugle, M. Network Protocol Handbook, McGraw Hill 1994 for a discussion of digital protocols, encapsulation and examples of encapsulation techniques. This book is hereby incorporated herein in its entirety by this reference. For a more detailed discussion of multiplexing, please see Lee, B. Kang, M., Lee, J., Broadband Telecommunications Technology, Artech House, Inc., 1993, chapter 3. This book is hereby incorporated herein in its entirety by this reference.
Communication in a telecommunication system typically occurs using a transmission structure. Transmission structure shall refer to the structure that carries data streams between communicating devices. Transmission structures might include, but are not limited to, wires, cables, fiber optics, lines and radio, microwave or sound transmission systems, for example. Thus, a network might communicate data over a wire transmission structure, where the wire structure multiplexed using an "E3.fwdarw.4E2.fwdarw.16E1.fwdarw.512 channel" multiplexing format. The encapsulation format in one of the 512 channels may be SNA encapsulated within TCP/IP encapsulated within Frame Relay encapsulated within ATM, for example. The encapsulation format in a second of the 512 channels might be FTP encapsulated within TCP/IP encapsulated within X.25, for example. While multiplexing standards may vary from country to country, standardization of multiplexing formats typically has been more prevalent than standardization of protocols. In particular, multiplexing format specifications may be published by CCITT, IEEE or ISO, for example. FIG. 3a shows common multiplexing schemes based on their CCITT specification numbers. In general, the European formats typically are described as E1, E2 and so on, for example. The North American formats typically are described as T1, T2 and so on, for example. FIG. 3b shows a typical multiplexing structure. Unlike multiplexing formats, digital protocols may change frequently and/or rapidly.
Three trends in the telecommunications industry may be having an impact on network processing. The first trend may be a drastic increase in computer-to-computer digital traffic. An example of this growth may be found in the growth of the Internet.
The trend toward increasing computer-to-computer traffic does not appear limited to technologically developed countries. In particular, less developed countries may purchase state-of-the-art telecommunications systems, reasoning that they cannot attract multi-national businesses and compete in a world marketplace unless they possess a first-rate telecommunications infrastructure.
A second trend in the telecommunications industry may be a seemingly insatiable demand for bandwidth. With the "STM-N/STS-N/OC-N, N=1, 2, 3 . . . " standards, for example, it now may be possible to carry 155 Mbps or 622 Mbps data streams on wires and radios. On the fiber front, 155 Mbps, 622 Mbps, 2.4 Gbps, 5 Gbps or even higher bandwidth data streams may become available. Advanced development labs may be looking at the feasibility of 40 Gbps data streams per fiber. While the bandwidth of fiber optic cables typically has not been limited by physical characteristics of the fiber itself, fiber optic bandwidths may be limited by the electronics/photonics interfaces required to place and retrieve data on the fiber. Nonetheless, the bandwidth of fiber optic cables may continue to improve if the bandwidth of these interface circuits continues to improve.
A third trend in the telecommunications industry may be the continuing growth in number of ways that computer-to-computer traffic may be formatted and sent across networks. For example, Network General.TM., a company that sells LAN/WAN sniffers.TM., has published a Guide to Communications protocols documenting a multitude of unique digital protocols in use today. This Guide is hereby incorporated herein by this reference.
The number of different protocols may be further increased by a multitude of proprietary `variants` of these protocols, as well as a constant introduction of new protocols. The current flux in the ATM Forums specification for the ATM protocol may be an example of this growth. In this area, major changed, new or variant protocols may be introduced on an average of once a month.
Computer-to-computer traffic is carried in the payload portion of various digital protocols in a unit of information called a packet. Payload shall refer to the data or information carried by a protocol. A packet shall refer to the basic unit of information transmitted on a network; i.e. an encapsulated payload. For further discussion of packets, please see Naugle, M. Network Protocol Handbook, McGraw Hill 1994, chapter 2, for example. See also, Lee, B. Kang, M., Lee, J., Broadband Telecommunications Technology, Artech House, Inc., 1993, chapter 1, sections 1.1.5 and 1.1.2. As these protocol packets traverse a network they may be further encapsulated within another digital protocol. Information that is already encapsulated may be encapsulated multiple additional times. Accordingly, a system that processes and/or analyzes network information often must be able to handle such nested encapsulation schemes. An ATM protocol, for example, may encapsulate a Frame Relay protocol, which may encapsulate a TCP/IP protocol which may encapsulate an SNA protocol. To properly process the payload carried by this original SNA protocol requires the recognition and de-encapsulation of ATM, Frame Relay, TCP/IP, and finally SNA.
Handling large amounts of this computer-to-computer traffic in the gigabit era may present problems. Assuming computer-to-computer traffic increases in the future, it may be desirable to carry data at bandwidths greater than 64 kbps. "Connection" shall refer to an association between two communicating stations using some kind of protocol such as E1 or T1 multiplexing or encapsulated protocols, for example. Connections may have to carry data streams at multi-megabit and multi-gigabit per second rates. With constantly changing protocols and encapsulation schemes, these increasing bandwidths may prevent conventional network processing equipment from processing computer-to-computer traffic in real time.
Three different conventional ways of processing digital network information may encounter difficulties under these conditions. In order of typical speed from fastest to slowest, conventional techniques for processing network information typically have included using Application Specific Integrated Circuits (ASICs), employing individual microprocessors and/or digital signal processing (DSP) chips running software, or doing non-real-time analysis on snapshot samples using software.
Traditionally, digital network processors typically use custom ASICs when they need to process data at real-time rates. These ASICs are custom chips designed from the ground up that implement the code or logic necessary to process network information. Whenever this code or logic is placed in a custom ASIC, the performance increase is typically several orders of magnitude greater than that which may be achieved in a software only implementation of that code or logic. The advantage of this approach is that it can process data streams in real time. The limitation of this approach is that the large number of possible protocols, the nesting of encapsulated protocols or the variety of multiplexing formats can make it difficult and expensive to produce ASICs to handle all of the possible protocols, encapsulations and multiplexings. Typically, ASICs have been developed to handle a few specific cases.
Conventional ASICs typically have limited flexibility. A change in an existing protocol due to a change in an encapsulation scheme or the advent of a new protocol, for example, may require a new and possibly expensive ASIC design. Mistakes uncovered during testing may add time and cost to the process of bringing an ASIC from design to production.
A second conventional way to process network information may be to run in software on either an individual microprocessor or a DSP chip the code or logic for processing network information. An advantage of implementing network processing code or logic in software is typically that software allows the code or logic to be readily changed when different encapsulation or multiplexing schemes or new protocols are used or developed, for example.
A disadvantage of implementing protocol processing code or logic in software is that usually only low speed data streams may be handled in this manner. A microprocessor and/or a DSP chip running such code or logic will typically not be fast enough to process a complex protocol at gigabit or even multi-megabit per second data rates, for example.
A third conventional way to process network information is to simply take a "snapshot" of the digital data stream. A snapshot is taken by downloading a part of a data stream into a large memory, such as a large RAM. This data then typically can be processed in a non-real-time manner to demultiplex, de-encapsulate and identify the digital protocols of interest, for example.
An advantage of using this "snapshot" technique is that the code or logic for processing the network information typically can be implemented in software. Again, software implementation of the code or logic typically facilitates changes which may be necessary when multiplexing formats, protocols and/or encapsulations are changed, for example. An additional advantage may be that because this technique does not require real time processing of the data stream, the software code or logic development task is eased. Unfortunately, this technique typically enables only processing of disjointed snapshots of digital data streams in time. This characteristic limits the use of this approach to network analysis where there is no need for real time, continuous, sustained processing.
Thus, there has been a need for a method and apparatus for digital network processing that is able to accomplish sustained, continuous and/or real time processing of network information but which can be reconfigured to handle different multiplexing formats, protocols and/or encapsulation schemes, for example, without the time or expense typically associated with creating a custom ASIC.